package com.manage.function.service.impl;

import com.manage.common.utils.SecurityUtils;
import com.manage.function.domain.Article;
import com.manage.function.mapper.ArticleMapper;
import com.manage.function.service.IArticleService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Random;

/**
 * 内容管理Service业务层处理
 *
 * @author jinghj
 * @date 2025-03-04
 */
@Service
public class ArticleServiceImpl implements IArticleService
{
    @Resource
    private ArticleMapper articleMapper;

    /**
     * 查询内容管理
     *
     * @param id 内容管理主键
     * @return 内容管理
     */
    @Override
    public Article selectArticleById(Long id)
    {
        return articleMapper.selectArticleById(id);
    }

    /**
     * 查询内容管理列表
     *
     * @param article 内容管理
     * @return 内容管理
     */
    @Override
    public List<Article> selectArticleList(Article article)
    {
        return articleMapper.selectArticleList(article);
    }

    /**
     * 新增内容管理
     *
     * @param article 内容管理
     * @return 结果
     */
    @Override
    public int insertArticle(Article article)
    {
        Random random=new Random();
        article.setId(random.nextLong());
        article.setCreatedAt(new Date());
        article.setCreator(SecurityUtils.getUsername());
        return articleMapper.insertArticle(article);
    }


    /**
     * 修改内容管理
     *
     * @param article 内容管理
     * @return 结果
     */
    @Override
    public int updateArticle(Article article)
    {
        article.setModifiedAt(new Date());
        article.setModifier(SecurityUtils.getUsername());
        return articleMapper.updateArticle(article);
    }

    /**
     * 批量删除内容管理
     *
     * @param ids 需要删除的内容管理主键
     * @return 结果
     */
    @Override
    public int deleteArticleByIds(Long[] ids)
    {
        return articleMapper.deleteArticleByIds(ids);
    }

    /**
     * 删除内容管理信息
     *
     * @param id 内容管理主键
     * @return 结果
     */
    @Override
    public int deleteArticleById(Long id)
    {
        return articleMapper.deleteArticleById(id);
    }
}
